const db = require('../db/db');

// 封装函数：执行查询操作  这个是异步的
function execute(query, params, successMessage, res) {
    db.getConnection((err, connection) => {
        if (err) {
            res.status(500).json({ error: '获取数据库连接失败' });
            return;
        }

        connection.query(query, params, (error, results) => {
            connection.release();
            if (error) {
                res.status(400).json({ error: '查询商品失败' });
                return;
            }
            res.status(200).json({ message: successMessage, results });
        });
    });
}

// 封装函数：执行查询操作  同步
function executeQueryAsync(query, params) {
    return new Promise((resolve, reject) => {
        db.getConnection((err, connection) => {
            if (err) {
                reject({ error: '获取数据库连接失败' });
                return;
            }

            connection.query(query, params, (error, results) => {
                connection.release();
                if (error) {
                    reject({ error: '查询商品失败' });
                    return;
                }
                resolve({ results });
            });
        });
    });
}

module.exports = {
    executeQuery: execute,
    executeQueryAsync
};
